// 给定一个非负整数 N，找出小于或等于 N 的最大的整数，同时这个整数需要满足其各个位数上的数字是单调递增。
// （当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时，我们称这个整数是单调递增的。）
// 输入: N = 332
// 输出: 299
// 找到非单调递增的位置，把该位置减1，然后把后面的位置都改为9
function monotoneIncreasingDigits(n) {
    let arr = String(n).split('')
    let flag
    for (let i = arr.length - 1; i > 0; i--) {
        if (arr[i - 1] > arr[i]) {
            flag = i
            arr[i - 1]--
        }        
    }
    if (flag) {
        for (let i = flag; i < arr.length; i++) {
            arr[i] = 9
        }
    }

    return Number(arr.join(''))
}
console.log(monotoneIncreasingDigits(332))